<?php
/**
 * 用户帐户变动
 * @param int $user_id 用户id
 * @param array $data  如 array('gold_bean'=>1000)用户金豆增加1000
 * @param bool $operation 真为加，假为减
 * return
 */
function modify_account($data=array('gold_bean'=>''),$other=array('user_id'=>'','rose_activity_id'=>'','rose_buy_id'=>'','type'=>'1','log_info'=>'')){
    $key=key($data);
    switch ($key){
        case 'gold_bean':
            $condition['gold_bean']=array('exp','gold_bean+'.doubleval($data['gold_bean']));
            break;
    }
    $condition['id']=$other['user_id'];
    if(M('follow')->save($condition)){
        account_log(array_merge($data,$other));
    }else{
       // echo M('follow')->getlastsql();
    }
}

/**
 * 用户帐户变动记录
 * @param $activity_id  产品id
 * @param $user_id      用户id
 * @param int rose_activity_id  猜涨跌活动id
 * @param int $rose_buy_id       用户下注表id
 * @param int $gold_bean   金豆数
 * @param int $type    类型  1下注，2中奖  3系统赠送
 * @param string $log_info  说明信息
 * return int 插入的id
 */
function account_log($data=array('user_id'=>'','rose_activity_id'=>'','rose_buy_id'=>'','gold_bean'=>'','type'=>'1','log_info'=>'')){
    if(empty($data['user_id']) || empty($data['gold_bean'])){
        return false;
    }
    $data=array(
        'user_id'=>$data['user_id'],
        'rose_activity_id'=>$data['rose_activity_id'],
        'rose_buy_id'=>$data['rose_buy_id'],
        'gold_bean'=>$data['gold_bean'],
        'type'=>$data['type'],
        'log_info'=>$data['log_info'],
        'add_time'=>time()
    );
    $res = D('account_log')->add($data);
    return $res;
}

/**
 * 检查某个日期是否是工作日，休息日，节假日
 * @param  string $time 20151030
 * @return string   空为时期不正确，0为工作日，1为休息日，2为节假日
 */
function is_rest($time){
    $url="http://www.easybots.cn/api/holiday.php?d=".$time;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $output = curl_exec($ch);
    curl_close($ch);
    $output = mb_convert_encoding($output, 'utf-8', 'gbk');
    if($output){
        $output=json_decode($output,true);
    }
    return $output;
}

/**
 * 获取某个时间几天之后的时间(除去节假日)
 * @param int $date_time  时间
 * @param int $days  天数
 * @param bool $tag 为true时获取$date_time经过$days天之后的时间，否则获取$date_time之前$days天之前的时间
 * @return int
 */
//20151124修改  ---增加获取某个时间之前的时间（除节假日）
function get_time($date_time,$days,$tag=true){

    //获取$date_time经过$days天之后的时间
    $result=$tag?date('Ymd',$date_time+$days*24*3600):date('Ymd',$date_time-$days*24*3600);
    //检查其中是否有节假日
    $str='';
    for($i=1;$i<=$days;$i++){
        $time=$tag?date('Ymd',$date_time+$i*24*3600):date('Ymd',$date_time-$i*24*3600);
        // $str.=date('Ymd',$date_time+$i*24*3600).',';
        $str.=$time.',';
    }
    $res=is_rest(rtrim($str,','));
    $index=0;
    if($res){
        foreach($res as $val){
            if($val){
                $index++;
            }
        }
    }
    //如果有节假日，则向后推延
    if($index){
        $result=get_time(strtotime($result),$index,$tag);
    }
    return $result;
}

/**
 * 通过股票代码获取股票信息
 * @param  string $stock_code 股票代码
 * @return string
 */
function get_stock($stock_code){
    $a = substr($stock_code,0,1);
    if($a==6 || $a==9 || $a==0){
        $a='sh'.$stock_code;
    }else if($a==0 || $a==2 || $a==3){
        $a='sz'.$stock_code;
    }
    //$url="http://hq.sinajs.cn/list=".$a;
     $url ='http://qt.gtimg.cn/q='.$a;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $output = curl_exec($ch);
    curl_close($ch);
    $output = mb_convert_encoding($output, 'utf-8', 'gbk');
    return $output;
}

/**
 * 通过股票代码计算股票信息
 * @param  string $stock_code 股票代码
 * @param float $start_price  股票开始价
 * @return string
 */

function stock_info($stock_code,$start_price=''){
    $data=array();
    $res=get_stock($stock_code);
    $arr2=explode("=",$res);
    $arr_msg=explode("~",trim($arr2[1],'"'));
    $data['stock_name']=$arr_msg[1]; //股票名称
    $data['current_price']=$arr_msg[5]; //今日开盘价
    $data['close_price']=$arr_msg[4]; //昨日收盘价
    $data['cur_price']=$arr_msg[3]; //当前价
    $data['stock_code']=$stock_code; //股票代码
    //$data['rose']=sprintf("%.2f",($data['cur_price']-$data['close_price'])); //涨幅
    //$data['per']=sprintf("%.2f",(($data['cur_price']- $data['close_price'])/ $data['close_price'])*100);//收益率
    $data['rose']=sprintf("%.2f",($data['cur_price']-$data['close_price'])); //涨幅
    $data['per']=sprintf("%.2f",(($data['cur_price']- $data['close_price'])/ $data['close_price'])*100);//收益率
    return $data;
}



/**
 * [get_follow_info 根据用户id获取用户特定信息]
 * @param  [type] $uid   [用户id]
 * @param  [type] $field [获取字段，如果不存在则获取所有信息]
 * @return [type]        [description]
 */
function get_follow_info($uid,$field=null){
    $m=M('follow');
    $where['id']=$uid;
    $where['status']=1;
    $info = null;
    if($field){
        $info=$m->where($where)->getField($field);
    }else{
        $info=$m->where($where)->find();
    }
    return $info;
}


/**
 * 获取涨跌活动的唯一标识 time值
 */
function get_now_time(){
    $day_time=mktime(13,00,00,date('m'),date('d'),date('Y'));
    if(time()>=$day_time){
        $time=get_time(strtotime(date('Ymd')),1);
    }else{
        $time=get_time(strtotime("-1 day"),1);
    }
    $result=M('rose_activity')->where("status=1")->order('periods_start_time desc')->find();
    if($time<date('Ymd',$result['periods_start_time'])){
        $time=date('Ymd',$result['periods_start_time']);
    }else if($time>date('Ymd',$result['periods_end_time'])){
        $time=date('Ymd',$result['periods_end_time']);
    }
    return $time;
}
/**
 * 获取排行榜中的总人数(当前参与的总人数加上假的人数)
 */
function ranking_count_persons($data){
     //加上虚拟人数
    $fictitious_data=F('fictitious_data');//虚拟金豆和人数的数据
    return count($data)+$fictitious_data['rise_num']+$fictitious_data['fall_num'];
}
?>